home *** CD-ROM | disk | FTP | other *** search
/ 600 Games / 600games.iso / Classicos / Pac Man white.swf / scripts / frame_6 / DoAction.as
Encoding:
Text File  |  2006-06-13  |  11.1 KB  |  512 lines

  1. ang = Math.abs(pacDir - nextPacDir) / 2;
  2. if(ang == 1)
  3. {
  4.    pacDir = nextPacDir;
  5. }
  6. else if(pacPos == 0)
  7. {
  8.    tempDir = pacDir;
  9.    pacDir = nextPacDir;
  10. }
  11. setPacMove(pacDir);
  12. if(pacPos == 0)
  13. {
  14.    P = Maze[pacX]["P" + pacY];
  15.    if(P._visible)
  16.    {
  17.       pacStep = 4;
  18.       pacPosMax = 2;
  19.       if(notMute)
  20.       {
  21.          tellTarget("Snd")
  22.          {
  23.             if(ChSnd)
  24.             {
  25.                gotoAndStop("Chomp1");
  26.                play();
  27.             }
  28.             else
  29.             {
  30.                gotoAndStop("Chomp2");
  31.                play();
  32.             }
  33.             ChSnd = !ChSnd;
  34.          }
  35.       }
  36.       P._visible = false;
  37.       pillEat++;
  38.       if(notMute)
  39.       {
  40.          if(pillEat == 180)
  41.          {
  42.             BGSnd.Back1.stop();
  43.             bgNum = 2;
  44.             BGSnd.Back2.start(0,1000);
  45.          }
  46.          else if(pillEat == 230)
  47.          {
  48.             BGSnd.Back2.stop();
  49.             bgNum = 3;
  50.             BGSnd.Back3.start(0,1000);
  51.          }
  52.       }
  53.       if(pillEat == 244)
  54.       {
  55.          newLev = true;
  56.          gotoAndStop(5);
  57.       }
  58.       score += 10;
  59.       if(Maze[pacX][pacY] == "O")
  60.       {
  61.          score += 40;
  62.          if(notMute)
  63.          {
  64.             BGSnd["Back" + bgNum].stop();
  65.             BGSnd.BlueGh.start(0,100);
  66.          }
  67.          ghBlue = ghBval;
  68.          ghKill = 100;
  69.          var g = 1;
  70.          while(g < 5)
  71.          {
  72.             tellTarget(Ghost[g])
  73.             {
  74.                if(Shape._visible)
  75.                {
  76.                   c.setRGB(13311);
  77.                   gotoAndStop(2);
  78.                   ghFast = false;
  79.                   e = new Color(PPEyes);
  80.                   e.setRGB(16777215);
  81.                }
  82.             }
  83.             g++;
  84.          }
  85.       }
  86.    }
  87.    else if(++pauseCount % 2)
  88.    {
  89.       pacStep = 4;
  90.       pacPosMax = 2;
  91.    }
  92.    else
  93.    {
  94.       pacStep = 6;
  95.       pacPosMax = 1;
  96.    }
  97.    if(Maze[pacX + 1][pacY] == "L")
  98.    {
  99.       pacX = 28;
  100.       nextX = 27;
  101.       Pacman._x = OFFX + 336;
  102.    }
  103.    else if(Maze[pacX - 1][pacY] == "R")
  104.    {
  105.       pacX = -1;
  106.       nextX = 0;
  107.       Pacman._x = OFFX - 12;
  108.    }
  109.    if(Maze[nextX][nextY] == "#" && ang != 1)
  110.    {
  111.       pacDir = tempDir;
  112.       setPacMove(pacDir);
  113.    }
  114. }
  115. if(!(pacPos == 0 && Maze[nextX][nextY] == "#"))
  116. {
  117.    with(Pacman)
  118.    {
  119.       if(nextX < pacX)
  120.       {
  121.          _x -= pacStep;
  122.          pacPos--;
  123.       }
  124.       else if(nextX > pacX)
  125.       {
  126.          _x += pacStep;
  127.          pacPos++;
  128.       }
  129.       else if(nextY < pacY)
  130.       {
  131.          _y -= pacStep;
  132.          pacPos--;
  133.       }
  134.       else if(nextY > pacY)
  135.       {
  136.          _y += pacStep;
  137.          pacPos++;
  138.       }
  139.    }
  140.    if(pacPos < 0 || pacPos > pacPosMax)
  141.    {
  142.       if(pacPos > pacPosMax)
  143.       {
  144.          pacPos = 0;
  145.       }
  146.       else if(pacPos < 0)
  147.       {
  148.          pacPos = pacPosMax;
  149.       }
  150.       pacX = nextX;
  151.       pacY = nextY;
  152.    }
  153.    if(stopped)
  154.    {
  155.       stopped = false;
  156.       Pacman.play();
  157.    }
  158. }
  159. else if(!stopped)
  160. {
  161.    stopped = true;
  162.    Pacman.gotoAndStop(1);
  163. }
  164. tellTarget("Fruit")
  165. {
  166.    if(_currentframe == 1)
  167.    {
  168.       if(!random(600))
  169.       {
  170.          gotoAndStop(_root.fruitNum);
  171.       }
  172.    }
  173.    else if(fCount)
  174.    {
  175.       if(hitTest(_root.Pacman.Hit))
  176.       {
  177.          gotoAndStop("Show");
  178.       }
  179.       else
  180.       {
  181.          fCount--;
  182.       }
  183.    }
  184.    else
  185.    {
  186.       gotoAndStop(1);
  187.    }
  188. }
  189. if(ghBlue)
  190. {
  191.    ghBlue--;
  192. }
  193. unBlue = false;
  194. var g = 1;
  195. while(g < 5)
  196. {
  197.    with(Ghost[g])
  198.    {
  199.       if(ghBlue && _currentframe == 2)
  200.       {
  201.          if(ghBlue == 50 || ghBlue == 40 || ghBlue == 30 || ghBlue == 20 || ghBlue == 10)
  202.          {
  203.             c.setRGB(16777215);
  204.             e.setRGB(16711680);
  205.          }
  206.          else if(ghBlue == 45 || ghBlue == 35 || ghBlue == 25 || ghBlue == 15 || ghBlue == 5)
  207.          {
  208.             c.setRGB(13311);
  209.             e.setRGB(16777215);
  210.          }
  211.          else if(ghBlue == 1)
  212.          {
  213.             gotoAndStop(1);
  214.             c.setRGB(cOrig);
  215.             ghFast = true;
  216.          }
  217.       }
  218.       gTest = false;
  219.       if(ghPos == 0)
  220.       {
  221.          if(Maze[ghX + 1][ghY] == "L" && ghDir == 3)
  222.          {
  223.             ghX = 29;
  224.             ghNX = 28;
  225.             _x = OFFX + 348;
  226.          }
  227.          else if(Maze[ghX - 1][ghY] == "R" && ghDir == 1)
  228.          {
  229.             ghX = -2;
  230.             ghNX = -1;
  231.             _x = OFFX - 24;
  232.          }
  233.          else if(ghX > 0 && ghX < 27)
  234.          {
  235.             var i = 0;
  236.             while(i < 4)
  237.             {
  238.                ghMove[i] = 1;
  239.                i++;
  240.             }
  241.             oppDir = ghDir >= 2 ? ghDir - 2 : ghDir + 2;
  242.             ghMove[oppDir] = 0;
  243.             if(Maze[ghX][ghY - 1] == "#")
  244.             {
  245.                ghMove[0] = 0;
  246.             }
  247.             if(Maze[ghX + 1][ghY] == "#")
  248.             {
  249.                ghMove[1] = 0;
  250.             }
  251.             if(Maze[ghX][ghY + 1] == "#")
  252.             {
  253.                ghMove[2] = 0;
  254.             }
  255.             if(Maze[ghX - 1][ghY] == "#")
  256.             {
  257.                ghMove[3] = 0;
  258.             }
  259.             pos = 0;
  260.             var i = 0;
  261.             while(i < 4)
  262.             {
  263.                ghChoice[i] = -1;
  264.                if(ghMove[i])
  265.                {
  266.                   ghChoice[pos++] = i;
  267.                }
  268.                i++;
  269.             }
  270.             bestXDir = -1;
  271.             bestYDir = -1;
  272.             if(Shape._visible && _currentframe == 1)
  273.             {
  274.                testX = pacX;
  275.                testY = pacY;
  276.             }
  277.             else
  278.             {
  279.                testX = 13;
  280.                testY = 11;
  281.             }
  282.             if(testX < ghX)
  283.             {
  284.                bestXDir = 3;
  285.             }
  286.             else if(testX > ghX)
  287.             {
  288.                bestXDir = 1;
  289.             }
  290.             if(testY < ghY)
  291.             {
  292.                bestYDir = 0;
  293.             }
  294.             else if(testY > ghY)
  295.             {
  296.                bestYDir = 2;
  297.             }
  298.             best = 0;
  299.             var i = 0;
  300.             while(i < pos)
  301.             {
  302.                if(ghChoice[i] == bestXDir || ghChoice[i] == bestYDir)
  303.                {
  304.                   ghBest[best++] = ghChoice[i];
  305.                }
  306.                i++;
  307.             }
  308.             if(best == 0 || Shape._visible && !random(3))
  309.             {
  310.                ghDir = ghChoice[random(pos)];
  311.             }
  312.             else
  313.             {
  314.                ghDir = ghBest[random(best)];
  315.             }
  316.             if(ghFast)
  317.             {
  318.                ghStep = 4;
  319.                ghPosMax = 2;
  320.             }
  321.             else
  322.             {
  323.                ghStep = 2;
  324.                ghPosMax = 5;
  325.             }
  326.             gNum++;
  327.             if(ghX == 13)
  328.             {
  329.                if(ghY > 11 && ghY < 15)
  330.                {
  331.                   if(Shape._visible)
  332.                   {
  333.                      gTest = true;
  334.                      ghDir = 0;
  335.                      if(gNum < 4)
  336.                      {
  337.                         _y -= 2;
  338.                      }
  339.                   }
  340.                   else if(ghY == 13)
  341.                   {
  342.                      unBlue = true;
  343.                      numEyes--;
  344.                      Shape._visible = true;
  345.                      Shape.Hit._visible = true;
  346.                   }
  347.                }
  348.                else if(ghY == 11)
  349.                {
  350.                   if(gNum == 1 && g == 1)
  351.                   {
  352.                      _x -= 2;
  353.                   }
  354.                   if(gNum == 4)
  355.                   {
  356.                      ghPos = 2;
  357.                      if(ghFast)
  358.                      {
  359.                         _x += 2;
  360.                      }
  361.                      else
  362.                      {
  363.                         _x -= 2;
  364.                      }
  365.                   }
  366.                   if(!Shape._visible)
  367.                   {
  368.                      gTest = true;
  369.                      ghDir = 2;
  370.                   }
  371.                }
  372.             }
  373.             if(ghY > 11 && ghY < 15)
  374.             {
  375.                if(ghX == 11 && gNum == ghPause + 2)
  376.                {
  377.                   gTest = true;
  378.                   ghDir = 1;
  379.                   gNum = -1;
  380.                }
  381.                if(ghX == 15 && gNum == 2 * ghPause + 2)
  382.                {
  383.                   gTest = true;
  384.                   ghDir = 3;
  385.                   gNum = -1;
  386.                }
  387.             }
  388.          }
  389.       }
  390.       setGhMove(ghDir,g);
  391.       if(!(ghPos == 0 && Maze[ghNX][ghNY] == "#") || gTest)
  392.       {
  393.          if(ghNX < ghX)
  394.          {
  395.             _x -= ghStep;
  396.             ghPos--;
  397.          }
  398.          else if(ghNX > ghX)
  399.          {
  400.             _x += ghStep;
  401.             ghPos++;
  402.          }
  403.          else if(ghNY < ghY)
  404.          {
  405.             _y -= ghStep;
  406.             ghPos--;
  407.          }
  408.          else if(ghNY > ghY)
  409.          {
  410.             _y += ghStep;
  411.             ghPos++;
  412.          }
  413.          Eyes.gotoAndStop(ghDir + 1);
  414.          if(ghPos < 0 || ghPos > ghPosMax)
  415.          {
  416.             if(ghPos > ghPosMax)
  417.             {
  418.                ghPos = 0;
  419.             }
  420.             else if(ghPos < 0)
  421.             {
  422.                ghPos = ghPosMax;
  423.             }
  424.             ghX = ghNX;
  425.             ghY = ghNY;
  426.          }
  427.       }
  428.       if(Shape.Hit._visible && Pacman.Hit.hitTest(Shape.Hit) && !newLev)
  429.       {
  430.          if(_currentframe == 1)
  431.          {
  432.             _root.stop();
  433.             playing = false;
  434.             Pacman.gotoAndPlay("Die");
  435.          }
  436.          else
  437.          {
  438.             BGSnd.BlueGh.stop();
  439.             ghKill *= 2;
  440.             score += ghKill;
  441.             ghFast = true;
  442.             if(ghPos > ghPosMax)
  443.             {
  444.                ghPos = 0;
  445.             }
  446.             else if(ghPos < 0)
  447.             {
  448.                ghPos = ghPosMax;
  449.             }
  450.             if(notMute)
  451.             {
  452.                Snd.gotoAndPlay("EatGhost");
  453.             }
  454.             gotoAndStop(1);
  455.             numEyes++;
  456.             Shape._visible = false;
  457.             Shape.Hit._visible = false;
  458.             c.setRGB(cOrig);
  459.             with(Ghost["K" + g])
  460.             {
  461.                _visible = true;
  462.                _x = Ghost[g]._x;
  463.                _y = Ghost[g]._y;
  464.                kval = ghKill;
  465.                play();
  466.             }
  467.          }
  468.       }
  469.    }
  470.    g++;
  471. }
  472. if(ghBlue && notMute)
  473. {
  474.    with(BGSnd)
  475.    {
  476.       if(ghBlue == 1)
  477.       {
  478.          BlueGh.stop();
  479.          EyesGh.stop();
  480.          eval("Back" + bgNum).start(0,1000);
  481.       }
  482.       else if(unBlue && !numEyes)
  483.       {
  484.          EyesGh.stop();
  485.          BlueGh.start(0,100);
  486.       }
  487.    }
  488. }
  489. if(lastScore != score)
  490. {
  491.    s = Math.floor(score / 10000);
  492.    sTest = (s + 1) / 2;
  493.    if(lives < 5 && sTest == int(sTest) && Math.floor(lastScore / 10000) < s)
  494.    {
  495.       eval("Life" + lives)._visible = true;
  496.       lives++;
  497.       if(notMute)
  498.       {
  499.          BGSnd.ExLife.start(0,6);
  500.       }
  501.    }
  502. }
  503. lastScore = score;
  504. if(!playing)
  505. {
  506.    stop();
  507. }
  508. if(quit)
  509. {
  510.    gotoAndStop(2);
  511. }
  512.